import { PropType } from 'vue';

// 组件props
export const pageHeaderComplexProps = {
  title: {
    type: String,
    default: ''
  },
  desc: {
    type: String,
    default: ''
  },
  descPlacement: {
    type: String as PropType<PageHeaderDescPlacement>,
    default: 'break'
  },
  size: {
    type: String as PropType<PageHeaderComplexSize>,
    default: 'default'
  },
  shadow: {
    type: Boolean,
    default: true
  },
  icon: {
    type: String,
    default: ''
  }
};

/**
 *  PageHeaderComplex props 类型声明
 */
export interface CPageHeaderComplexProps {
  /**
   * 标题
   */
  title: string;
  /**
   * 标题描述
   */
  desc?: string;
  /**
   * 标题描述的位置
   * break 换行，在标题下面
   * inline 不换行，跟在标题后面
   */
  descPlacement?: PageHeaderDescPlacement;
  /**
   * 大小
   * small高 56
   * default 高 80
   */
  size?: PageHeaderComplexSize;
  /**
   * 是否有下阴影
   */
  shadow?: boolean;
  /**
   * icon
   */
  icon?: string;
}

export type PageHeaderComplexSize = 'small' | 'default';

export type PageHeaderDescPlacement = 'break' | 'inline';
